package com.google.code.jarquivoretorno.core;

import com.google.code.jarquivoretorno.layout.modelo.Campo;
import com.google.code.jarquivoretorno.layout.modelo.Secao;

/**
 * Esta interface defini as ações necessárias a manipulação do conjunto de
 * arquivos retornos disponíveis. A partir dela é possível navegar através dos
 * arquivos, capturar uma determinada {@link Secao} e ter acesso ao conteúdo dos
 * arquivos.
 * 
 * @since 02/02/2010 10:16:57
 * @author Rafael Freitas de Morais
 * 
 */
public interface ArquivoRetornoManager {

	/**
	 * 
	 * @return
	 */
	public boolean nextArquivoRET();
	
	/**
	 * 
	 * @param name
	 * @return
	 */
	public Secao getSecaoByName(String name);
	
	/**
	 * 
	 * @param secao
	 * @param nomeCampo
	 * @return
	 */
	public Campo getCampoByName(Secao secao, String nomeCampo);
	
	/**
	 * 
	 * @return
	 */
	public boolean readRecord();
	
	/**
	 * 
	 * @param key
	 * @return
	 */
	public String getValue(Campo campo);
}